This invention relates to techniques for controlling a motor and, more particularly, to a method and apparatus for driving and controlling a motor. Although the present invention is applicable to both AC and DC motors, the embodiments described herein are disclosed in the context of driving and controlling the speed of a DC motor. Furthermore, the motor which is controlled by the present invention is particularly useful in those applications requiring relatively precise and accurate motor speeds, one of which applications is to drive a magnetic disk on which data is written and read. Such a motor is known, typically, as a "spin motor", and the present invention advantageously is used to drive the spin motor of a small disk drive device, such as a 51/4 inch or a 31/2 inch (or smaller) disk drive. Other applications and uses of the controlled motor are contemplated, as will become apparent.
In typical motor drive systems, either for AC motors or DC motors, solid-state control circuitry, such as transistor circuitry, is connected to a conventional motor, and control signals are applied to the transistor circuitry to determine and regulate the current flowing through that motor. In applications requiring motor speed control, the actual speed of the motor is represented by suitable signals, which may be generated either as a function of the actual motor current or as a function of the rotation of a reference point on the motor past a suitable pick-up. These signals are used to detect errors or departures from a desired motor speed. Such detected errors then are fed back to vary the operation of the transistor circuitry so as to maintain proper speed control over the motor.
In one motor control circuit, the duty cycle of a pulse width modulated (PWM) signal is controlled by a digital counter, the PWM signal being used to set the speed of the motor. A digital processor is supplied with encoder pulses generated by, for example, a Hall effect sensor to represent the actual speed of the controlled motor. The processor determines speed errors as a function of these encoder pulses to shorten or lengthen the duty cycle of the PWM signal, thereby adjusting the motor speed. In another technique, the PWM signal that is used to drive the motor is integrated to supply a slowly changing drive signal to the motor.
One difficulty that has been recognized in systems which adjust the motor drive signal promptly in response to speed errors is the sensitivity of the motor control circuit to repetitive errors. Even though such speed errors may be relatively small, this sensitivity may result in sudden or jerky changes in the motor speed. Techniques have been suggested to enhance the overall speed of loop stability of such circuits, such as utilizing phase-locked loops, integrators, and the like.
Another problem attending motor speed control systems relates to the stopping or braking of the controlled motor. If the drive signal is interrupted, such as if the duty cycle of the PWM signal is reduced to zero, the motor eventually will coast to a stop. However, in various applications, such as in small disk drives, it is desirable for the motor to be braked quickly. Dynamic braking of a DC motor has been proposed, wherein the bipolar transistor drive elements which are connected across the motor windings are simultaneously rendered conductive to form a closed loop which short-circuits the motor. It is difficult, however, in controlling DC motors, to achieve such dynamic braking when the usual motor power supply (which supplies operating power to both the motor and the control circuitry) is cut off. Also, the circuit components that have been used generally are quite large or bulky, and dissipate significant amounts of power.